package leetcode;

import java.util.*;

/*
1 <= A.length <= 10000
0 <= A[i] <= 9
0 <= K <= 10000
如果 A.length > 1，那么 A[0] != 0

来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/add-to-array-form-of-integer
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class Test0989 {
    public List<Integer> addToArrayForm(int[] A, int K) {
        //技巧1：当k 和 a的长度不知道谁长的时候 可以用并列条件
        //技巧2：可以把 1 2 3 看成 000000123
        //技巧3：可以用Collection.reverse反转列表
        int N=A.length;
        int i=N-1;
        int jinwei=0;
        List<Integer> res=new ArrayList<>();
        //9999999
        //      1

        while (i>=0 || K>0){
            int tmp=0;
            if(i>=0){
                tmp+=A[i];
            }
            tmp+=(K%10);
            tmp+=jinwei;
            if(tmp>=10){
                jinwei=1;
                tmp=tmp%10;
            }
            else{
                jinwei=0;
            }
            res.add(tmp);
            i--;
            K=K/10;
        }
        if(jinwei>0)
            res.add(jinwei);
        Collections.reverse(res);
        return res;

    }
}
